# if 基础语句的使用示例
age = 18
if age >= 18
  puts "You are an adult."
end

# if-else 语句的使用示例
temperature = 25
if temperature > 30
  puts "It's hot outside!"
else
  puts "It's not too hot."
end

# if-elsif-else 语句的使用示例
score = 85
if score >= 90
  puts "A"
elsif score >= 80
  puts "B" # 这里会输出 "B"
else
  puts "C"
end

# 单行写法（修饰符形式）
puts "Hello, World!" if true

# 逻辑运算符结合
# 可与 &&（与）、||（或）、!（非）结合使用：
if age >= 18 && age <= 60
  puts "You are eligible for retirement."
end

if age < 18 || age > 60
  puts "You are not eligible for retirement."
end

is_major = true
if !is_major
  puts "You are not a major."
end

#### **`if` 作为表达式返回值**
# Ruby 中 `if` 会返回最后执行的表达式的值：
x = 10
result = if x > 0 then
           "positive"
         else
           "negative"
         end
puts result # 输出: "positive"

# 三元表达式
a = 10
b = 20
max = (a > b) ? a : b
puts max # 输出: 20

# if真假值规则
# - 真值**：除了 `false` 和 `nil` 之外的所有值。
# - **假值**：仅 `false` 和 `nil`。
# 会执行（空字符串为真）
if ""
  puts "if 空字符串: This is true."
end

# 会执行
if 0
  puts " if 0: This is true."
end

# 不会执行
if nil
  puts "if nil: This is false."
end

# 基础 unless 语句
rainy = false
unless rainy
  # 除非下雨（rainy == false），否则执行
  puts "rainy == false, Go outside and play!"
end

# unless-else 结构
age = 18
unless age < 18
  # 除非年龄小于 18，否则执行
  puts "You are an adult."
else
  # 否则执行
  puts "You are not an adult."
end

# 代码 unless 条件
def file_protected?
  # code here
  false # 假设文件不受保护
end

def delete_file
  # code here
  puts "File deleted."
end

delete_file unless file_protected?  # 除非文件受保护，否则删除

# 与 &&、|| 结合
age = 18
unless age < 18 && age > 60
  # 除非年龄小于 18 或大于 60，否则执行
  puts "You are eligible for retirement."
end

# 与 ! 结合
is_major = true
unless !is_major
  # 除非不是专业的，否则执行
  puts "You are a major."
end

def data_invalid?
  false
end
def save_data
  puts "Data saved successfully."
end

save_data unless data_invalid?

# 默认值赋值
name = "Guest" unless name
puts "Hello, #{name}!"


def process_file
  puts "Processing file..."
end

# 假设文件不存在
file = nil

# 跳过异常情况
process_file unless file.nil?